Snapshot copies of a data set such as a file or storage volume have been used for a variety of data processing and storage management functions such as storage backup, transaction processing, and software debugging.
Backup and restore services are a conventional way of reducing the impact of data loss from the network storage. To be effective, however, the data should be backed up frequently, and the data should be restored rapidly from backup after the storage system failure. As the amount of storage on the network increases, it is more difficult to maintain the frequency of the data backups, and to restore the data rapidly after a storage system failure.
In the data storage industry, an open standard network backup protocol has been defined to provide centrally managed, enterprise-wide data protection for the user in a heterogeneous environment. The standard is called the Network Data Management Protocol (NDMP). NDMP facilitates the partitioning of the backup problem between backup software vendors, server vendors, and network-attached storage vendors in such a way as to minimize the amount of host software for backup. The current state of development of NDMP can be found at the Internet site for the NDMP organization. Details of NDMP are set out in the Internet Draft Document by R. Stager and D. Hitz entitled “Network Data Management Protocol” document version 2.1.7 (last update Oct. 12, 1999).
One way of managing backup and restore services in a file server is to use a snapshot copy facility providing read-write access to a production data set and concurrent read-only access to any selected one of a number of related snapshot file systems. Each of the related snapshot file systems is the state of the production file system at a respective point in time when the snapshot file system was created. For a user to access a production file system named “D”, for example, the user may enter a “change directory” (cd) operating system command of the form:    cd/A/B/C/Dwhere “C” is a directory containing “D”, “B” is a directory containing “C”, “A” is a directory containing “B”, and “A” is contained in a root directory presently selected by the operating system for servicing client requests for file system access.
At this point, the file system named “D” has become the root directory presently selected by the operating system for servicing user requests for file system access. The user can then enter operating system commands that specify a path name with respect to the root directory “D” to a specific subdirectory or file in the file system “D”.
The snapshot file systems for the production file system are contained in a special subdirectory named “.ckpt”. If there are seven snapshots, including one snapshot of the file system “D” taken at 3:00 a.m. on each day of the week, for example, then the subdirectory named “.ckpt” is in the root directory of “D”. This subdirectory named “.ckpt” contains the snapshots “sun”, “mon”, “tue”, . . . , “sat”. In this case, to view the snapshot file system last taken at 3:00 a.m. on a Monday, the user would enter:    cd/.ckpt/mon
The user may restore a specific subdirectory or file after the user discovers that the original version of the subdirectory or file in the production file system has become corrupted. In this situation, the user may view the snapshots in order to find the most recent snapshot containing a version of the subdirectory or file that has not been corrupted, and then restores the original version in the production file system with the most recent version that has not been corrupted. For example, if the user finds that the production version of a file named “customers” has become corrupted and the most recent uncorrupted version is found in the snapshot taken the morning of last Tuesday, the user may restore the production version of the file with Tuesdays' version by entering a “copy” operating system command of the form:    copy/.ckpt/tue/customers customers